#ifndef FileManager_H_
#define FileManager_H_

#include <fstream>
#include <string>
#include "estructuras/info/Info.h"
#include "LectorArchivos.h"

#ifndef SEPARADOR
#define SEPARADOR ","
#endif

enum Archivos{
	ENTRENAMIENTO, REAL, STOPWORDS, RESULTADO
};

class FileManager {

protected :
	LectorArchivos * archivoEntrenamiento;
	LectorArchivos * archivoReal;
	LectorArchivos * archivoResultado;
	LectorArchivos * archivoStopwords;
	Info info;

private :
	static FileManager * fileManagerInstance;
	//static const string SEPARADOR = ",";
	FileManager();
	FileManager(FileManager const&);
	string parsearAutor(string const & texto);
	Lista<string> & parsearPalabrasEnLista(string & texto);
	void limpiar(string & palabra);
	size_t buscarDivision(string const & texto);
	void mayusAMinus(string & texto);
	void replaceEnie(string & palabra);

public :

	~FileManager();
	static FileManager * getInstance();
	void asignarArchivoEntrenamiento(const string & path);
	void asignarArchivoReal(const std::string & path);
	Info &getInfo(Archivos tipoArchivo);
	void escribirLinea(Archivos tipoArchivo, string & linea);
	LectorArchivos & getArchivo(Archivos tipoArchivo);
};



#endif /* FileManager_H_ */
